Soru & Cevap

JSON Parser Sorunu

28.12.2013 - 04:48

Merhabalar Androidde uygulamamin Login panelini yapmaktayim.Bircok hatami duzelttim simdiki hatam ise  JSON Parse ilgili en azindan ben onunla ilgili oldugunu zannediyorum.

"error parsing data org.json.jsonexception end of input at character 0" Bu hatayi aliyorum bircok yeri arastirmama ragmen saglikli bir sonuc alamadim.Asagidada JSONParse ile ilgili kodlar yer aliyor.

public class JSONParser {

 

    static InputStream is = null;

    static JSONObject jObj = null;

    static String json = "";

 

    // constructor

    public JSONParser() {

 

    }

 

    public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) {

 

        //  HTTP request

        try {

            // HttpClient

            DefaultHttpClient httpClient = new DefaultHttpClient();

            HttpPost httpPost = new HttpPost(url);

            httpPost.setEntity(new UrlEncodedFormEntity(params));

 

            HttpResponse httpResponse = httpClient.execute(httpPost);

            HttpEntity httpEntity = httpResponse.getEntity();

            is = httpEntity.getContent();

 

        } catch (UnsupportedEncodingException e) {

            e.printStackTrace();

        } catch (ClientProtocolException e) {

            e.printStackTrace();

        } catch (IOException e) {

            e.printStackTrace();

        }

 

        try {

            BufferedReader reader = new BufferedReader(new InputStreamReader(

                    is, "iso-8859-1"), 8);

            StringBuilder sb = new StringBuilder();

            String line = null;

            while ((line = reader.readLine()) != null) {

                sb.append(line + "n");

            }

            is.close();

            json = sb.toString();

            Log.e("JSON", json);

        } catch (Exception e) {

            Log.e("Buffer Error", "Error converting result " + e.toString());

        }

 

        // try parse the string to a JSON object

        try {

            jObj = new JSONObject(json);

        } catch (JSONException e) {

            Log.e("JSON Parser", "Error parsing data " + e.toString());

        }

 

        // return JSON String

        return jObj;

 

    }

}

574 Görüntülenme

3 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user alierbas
alierbas
30.12.2013 - 09:56

Merhaba;

Json datanda problem olmadığını var sayıyorum ve Aşağıda kullandığın;

sb.append(line + "n");

Yerine 

 

sb.append(line + "\n");

Kullanırsan sorunun çözülecektir.

 

 

picture-539-1376512244.jpg
enessen
29.12.2013 - 12:27

Selam Yavuz,

Hatadan anladığım kadarıyla, ilk karakterde hata alıyor olması, hatanın Encodding olacağını düşündürüyor bana. Yerinde olsam inputStream i okurken doğru encodding ile okuyup okumadığımı kontrol ederdim. "iso-8859-1" olduğuna emin misin?

Tavsiyemdir :) kolaylıklar.

picture-472-1375079047.jpg
mehmet.altiparmak
28.12.2013 - 11:28

Merhaba Yavuz, 

Hatadan anladığım kadarıyla işlem sonucunda sana dönen cevap geçerli bir JSON metni değil o yüzden JSONObject oluşturulurken hata alıyorsun. Aşağıdaki satırda JSONObject'in constructor'ına geçtiğin json değişkenini paylaşabilir misin? 

[code]

jObj = new JSONObject(json);

[/code]

Yavuz
14.01.2014 - 11:22
Zamaninda yazamadim ama problemlerimi cozdum...tesekkurler..